// 公告的组件

cc.Class({
    extends: cc.Component,

    properties: {
        m_notice : cc.RichText,                   // 公告的内容（富文本，可替换为Label）
        m_noticeList:[],                        // 公告内容的容器
    },

    onLoad() {
        this.SetRollNotice();
    },

    // 设置公告滚动
    SetRollNotice : function() {
        this.m_notice.string = this.GetABulletin();
        // 初始化公告的位置
        this.m_notice.node.x = this.node.width + 10;
        this.schedule(()=>{
            this.m_notice.node.x -= 3;
            if( this.m_notice.node.x <  -this.m_notice.node.width) {
                // 获取新公告并显示出来
                this.m_notice.string = this.GetABulletin();
                // 初始化公告的位置
                this.m_notice.node.x = this.node.width + 10;
            }
        }, 0.01);
    },

    // 获取一条公告
    GetABulletin : function() {
        /*读取单条公告信息*/
        if(this.m_noticeList.length > 1000) {
            this.m_noticeList = [];
        }

        // 查找下一条公告并返回这条公告的内容
        for(var i=0; i < this.m_noticeList.length ;  i++) {
            if(this.m_noticeList[i]){
                var tmep = this.m_noticeList[i];
                // 删除容器里面这条公告
                this.m_noticeList.splice(i,1);
                return tmep;
            }
        }

        this.m_noticeList = [];
        // 没有内容默认显示的公告
        return "<color=green>你好</color> 欢迎光临 <color=#FFFF00>新的游戏框架</color>";
    },

    // 添加一条新的公告
    // str                          添加公告的内容
    AddNotice : function(str) {
        this.m_noticeList.push(str);
    },
});
